{
cairo_save (cr);
cairo_identity_matrix (cr);
+
+ cairo_reset_clip (cr);
cairo_new_path (cr);
gdk_cairo_region (cr, private->clip_region);
cairo_save (cr);
cairo_identity_matrix (cr);
+ cairo_reset_clip (cr);
+
cairo_new_path (cr);
gdk_cairo_region (cr, paint->region);
cairo_restore (cr);
{
child = l->data;
- if (!GDK_WINDOW_IS_MAPPED (child) || child->input_only)
+ if (!GDK_WINDOW_IS_MAPPED (child) || child->input_only || child->composited)
continue;
/* Ignore offscreen children, as they don't draw in their parent and
r.height = child->height;
child_region = gdk_region_rectangle (&r);
-
+ if (child->shape)
+ gdk_region_intersect (child_region, child->shape);
+
if (child->impl == private->impl)
{
/* Client side child, expose */